Add auto-detection for serial ports (up to COM8).
authoroliskoli <oliskoli>
Sat, 22 Jul 2006 21:00:52 +0000 (21:00 +0000)
committeroliskoli <oliskoli>
Sat, 22 Jul 2006 21:00:52 +0000 (21:00 +0000)
win32/GPSBabelGUI.exe
win32/gui-2/GPSBabelGUI.dof
win32/gui-2/common.pas
win32/gui-2/main.dfm
win32/gui-2/main.pas

index 186c8a866013563ee995a8af6a67272e124ec041..29798cd15e03db5ff4bd07891409db3e878bcdf6 100644 (file)
Binary files a/win32/GPSBabelGUI.exe and b/win32/GPSBabelGUI.exe differ
index e9e83cf25eff6f87c8febdf00eaace904c00d46c..000bdf1d0b8f99449c8b12d381222df701e3fbcb 100644 (file)
@@ -56,7 +56,7 @@ IncludeVerInfo=1
 AutoIncBuild=0\r
 MajorVer=0\r
 MinorVer=2\r
-Release=4\r
+Release=5\r
 Build=0\r
 Debug=0\r
 PreRelease=0\r
@@ -68,13 +68,13 @@ CodePage=1252
 [Version Info Keys]\r
 CompanyName=GPSBabel Makers\r
 FileDescription=GPSBabel Windows Frontend\r
-FileVersion=0.2.4\r
+FileVersion=0.2.5.0\r
 InternalName=\r
 LegalCopyright=(C) 2005-2006 Olaf Klein (O.B.Klein@T-Online.de)\r
 LegalTrademarks=\r
 OriginalFilename=GPSBabelGUI.exe\r
 ProductName=GPSBabel\r
-ProductVersion=1.3\r
+ProductVersion=1.3.0\r
 Comments=\r
 [HistoryLists\hlConditionals]\r
 Count=1\r
index 402828f3dc4f5c4b0de7890148600463e2dcf75f..4c75edbaa4111b7ece243820faffba8c881e95af 100644 (file)
@@ -50,6 +50,9 @@ const
   WM_STARTUP = WM_USER + 1;\r
   WM_OPTIONS_CHANGED = WM_USER + 2;\r
 \r
+const\r
+  MAX_NO_OF_SERIAL_PORTS = 8;\r
+\r
 const\r
   SREG_TARGET_DIR = 'Target:Directory';\r
   SREG_SOURCE_DIR = 'Source:Directory';\r
index d97cb70a6147226fc4cca0e32bd9738084dfe6b7..6f27fe4d93da9780913ad0d6bc47e1d5f9c90a5b 100644 (file)
Binary files a/win32/gui-2/main.dfm and b/win32/gui-2/main.dfm differ
index 60bddbb07b9c80295073806daa0b1fd17dc4845d..375e9ec2e774dd632c5bd85411f6db39f6df8353 100644 (file)
@@ -23,7 +23,7 @@ interface
 uses\r
   gnugettext, TypInfo, delphi, \r
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,\r
-  StdCtrls, Buttons, ExtCtrls, \r
+  StdCtrls, Buttons, ExtCtrls,\r
   common, utils, ImgList, ActnList, Menus, ComCtrls, ToolWin;\r
 \r
 type\r
@@ -174,6 +174,7 @@ type
     procedure HandleParams;\r
     procedure HistoryChanged(Box: TComboBox; Swap: Boolean = False);\r
     procedure InitCombo(Target: TComboBox; IsInput, ForDevice: Boolean);\r
+    procedure InitializeSerialPorts;\r
     procedure LoadLanguages;\r
     procedure LoadFileFormats;\r
     procedure LoadVersion;\r
@@ -374,6 +375,8 @@ begin
   // ? valid README form\r
   s := ExtractFilePath(ParamStr(0)) + 'gpsbabel.html';\r
   acHelpReadme.Enabled := FileExists(s) or (frmReadme.Memo.Lines.Count > 0);\r
+\r
+  InitializeSerialPorts;\r
 end;\r
 \r
 procedure TfrmMain.InitCombo(Target: TComboBox; IsInput, ForDevice: Boolean);\r
@@ -588,8 +591,13 @@ begin
     if mnuSynthesizeShortNames.Checked then cmdline := cmdline + ' -s';\r
 \r
     if chbInputDevice.Checked then\r
-      s := SysUtils.AnsiLowerCase(cbInputDevice.Text) + ':'\r
-    else begin\r
+    begin\r
+      s := SysUtils.AnsiLowerCase(cbInputDevice.Text) + ':';\r
+//    if (s = 'usb:') then\r
+//      s := s + '-1';\r
+    end\r
+      else\r
+    begin\r
       s := edInputFile.Text;\r
       if not(FileExists(s)) then\r
       raise eGPSBabelError.CreateFmt(_('File %s not found.'), [s]);\r
@@ -639,8 +647,11 @@ begin
     begin\r
       if (cbOutputDevice.Text = 'SCREEN') then\r
         s := '-'\r
-      else\r
-        s := cbOutputDevice.Text + ':'\r
+      else begin\r
+        s := AnsiLowerCase(cbOutputDevice.Text + ':');\r
+//      if (s = 'usb:') then\r
+//        s := s + '-1';\r
+      end;\r
     end\r
     else begin\r
       s := edOutputFile.Text;\r
@@ -771,7 +782,17 @@ begin
   \r
   l := TStringList.Create;\r
   try\r
-    if not gpsbabel('-p "" -V', l) then Exit;\r
+\r
+    try\r
+      if not gpsbabel('-p "" -V', l) then\r
+        PostMessage(Self.Handle, WM_QUIT, 0, 0);\r
+    except\r
+      on E: Exception do\r
+      begin\r
+        ShowException(E, nil);\r
+        PostMessage(Self.Handle, WM_QUIT, 0, 0);\r
+      end;\r
+    end;\r
 \r
     for i := 0 to l.Count - 1 do\r
     begin\r
@@ -1319,4 +1340,23 @@ begin
   CheckInput;\r
 end;\r
 \r
+procedure TfrmMain.InitializeSerialPorts;\r
+var\r
+  port: string;\r
+  i: Integer;\r
+  config: TCommConfig;\r
+  cfsize: DWORD;\r
+begin\r
+  for i := 1 to MAX_NO_OF_SERIAL_PORTS do\r
+  begin\r
+    port := Format('COM%d', [i]);\r
+    cfsize := sizeof(config);\r
+    if GetDefaultCommConfig(PChar(port), config, cfsize) then\r
+    begin\r
+      cbInputDevice.Items.Add(Format('COM%d', [i]));\r
+      cbOutputDevice.Items.Add(Format('COM%d', [i]));\r
+    end;\r
+  end;\r
+end;\r
+\r
 end.\r